Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Оптимізація запитів в SQL Server 2008

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2009
Тип роботи:
Звіт
Предмет:
Інформаційні технології
Група:
ПІ

Частина тексту файла

Міністерство освіти та науки України Національний університет «Львівська політехніка» Інститут комп’ютерних наук та інформаційних технологій Кафедра ПЗ ЗВІТ до лабораторної роботи №3 з дисципліни «Бази даних (частина ІІ)» на тему: «Оптимізація запитів в SQL Server 2008» Мета: Навчитись підвищувати продуктивність запитів в SQL Server 2008, використовуючи оптимізатор запитів. Завдання 1.Створити базу даних з наступною архітектурою таблиць: - Classes (class, type, country, numGuns, bore, displacement) - Ships (name, class, launched) - Battles (name, date) - Outcomes (ship, battle, result) 2.Всі новостворені об’єкти бази даних помістити у наперед створену схему бази даних. 3.Внести відповідні дані у таблиці. 4.Знайти назви кораблів з гарматами калібру 16 дюймів (врахувати кораблі з таблиці Outcomes). 5.Проглянути план виконання запиту. 6.Використовуючи SQL Query Analyzer і SQL Profiler, здійснити оптимізацію запиту. 7.Привести отриманий план запиту. Хід роботи 1.Створення бази даних і чотирьох таблиць: Classes, Ships, Battles, Outcomes; встановлення зв’язків між ними:  2.Поміщення всіх таблиць у наперед створену схему бази даних Ships, яка задана схемою за замовчуванням для користувача бази даних:  3.Внесення у таблиці відповідних даних: Таблиця Classes:  Таблиця Ships:  Таблиця Battles:  Таблиця Outcomes:  4.Запит, який повертає назви кораблів з гарматами калібру 16 дюймів з урахуванням кораблів з таблиці Outcomes: SELECT name FROM Ships.Ships WHERE class IN (SELECT class FROM Ships.Classes WHERE bore = 16) UNION SELECT ship FROM Ships.Outcomes WHERE ship IN (SELECT class FROM Ships.Classes WHERE bore = 16) Назви кораблів з гарматами калібру 16 дюймів:  5.План виконання запиту:  Додаткові дані про останню вартісну операцію (Union):  6.Створення унікального некластерного індексу, що покриває звернення до таблиці Ships: CREATE UNIQUE NONCLUSTERED INDEX ShipIndex ON Ships.Ships(name) INCLUDE (class) Створення на базі таблиці Classes віртуальної таблиці з назвами класів з гарматами калібру 16 дюймів та індексу до неї: CREATE VIEW Ships.ClassBore16 WITH SCHEMABINDING AS SELECT class AS ShipClass FROM Ships.Classes WHERE bore = 16 GO CREATE UNIQUE CLUSTERED INDEX ClassViewIndex ON Ships.ClassBore16(ShipClass) GO Оптимізований запит з використанням створених індексів, вибором з таблиці Outcomes тільки різних значень і заміною найбільш вартісної операції Union операцією Concatenation: SELECT name AS ShipName FROM Ships.Ships WITH (INDEX = ShipIndex) WHERE class IN (SELECT ShipClass FROM Ships.ClassBore16 WITH (NOEXPAND)) UNION ALL SELECT DISTINCT ship AS ShipName FROM Ships.Outcomes WHERE ship IN (SELECT ShipClass FROM Ships.ClassBore16 WITH (NOEXPAND)) 7.План виконання запиту:  Додаткові дані про останню вартісну операцію (Concatenation):  Порівняння виконання початкового і оптимізованого запитів за допомогою трасування в SQL Profiler, а також порівняння 100-кратного виконання цих запитів:  Висновок: На цій лабораторній роботі я навчився підвищувати продуктивність запитів в SQL Server 2008, використовуючи оптимізатор запитів; створив власну базу даних, вніс у неї відповідні дані та здійснив оптимізацію запиту до неї за допомогою SQL Query Analyzer і SQL Profiler.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини